package com.chinasoft.config;

import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext;
import org.springframework.web.filter.CharacterEncodingFilter;
import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
import org.springframework.web.servlet.support.AbstractDispatcherServletInitializer;

import javax.servlet.Filter;

// ServletContainerInitConfig 类在 tomcat初始化执行下面的方法
// 无需传统的web.xml
public class ServletContainerInitConfig extends AbstractAnnotationConfigDispatcherServletInitializer {
    @Override
    // spring 容器的初始化
    protected Class<?>[] getRootConfigClasses() {
        return new Class[0];
    }

    @Override
    // spring mvc 容器的初始化
    protected Class<?>[] getServletConfigClasses() {
        return new Class[]{SpringMvcConfig.class};
    }

    @Override
    // 处理 springmvc的映射关系
    protected String[] getServletMappings() {
        return new String[]{"/"};
    }

    // 解决 post 乱码问题
    @Override
    protected Filter[] getServletFilters() {
        // 可以处理乱码的过滤器
        CharacterEncodingFilter cef = new CharacterEncodingFilter();
        // 设置过滤器的编码方式， 用来处理 post 请求的内容
        cef.setEncoding("utf-8");
        return new Filter[]{cef};
    }
}
